package com.thinta.wind.ui.home.repository

import androidx.lifecycle.ViewModel
import com.thinta.wind.base.ViewModelFactory
import com.thinta.wind.entity.HomeRecommendItemListBean
import com.thinta.wind.entity.RecommendBannerItem
import com.thinta.wind.network.RetrofitManager
import com.thinta.wind.ui.home.viewmodel.FollowViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

/*********************************************************
 * 版权信息：2021/6/28 16:53北京振中电子技术有限公司版权所有<p>
 * 创建作者：Wind<p>
 * 创建日期：2021/6/28 16:53<p>
 * *******************************************************<p>
 * 更新历史：    作者      日期      更新摘要<p>
 * <p>
 * *******************************************************<p>
 * 类功能说明：<p>
 */
class FollowRepository {

    suspend fun getFollowList(page : Int) : List<HomeRecommendItemListBean>? = withContext(Dispatchers.IO){
        val result = RetrofitManager.apiServiceAlpha.getHomeRecommendList(page.toString()).itemList
        result
    }

    @Suppress("SENSELESS_COMPARISON")
    suspend fun getFollowBanner() : List<RecommendBannerItem>? = withContext(Dispatchers.IO){
        val issueList = RetrofitManager.apiServiceAlpha.getHomeRecommendBannerList().issueList
        val result = ArrayList<RecommendBannerItem>()
        if(issueList.isNotEmpty()){
            issueList[0].itemList.forEach {
                if(it.data.author != null){
                    result.add(it)
                }
            }
        }
        result
    }

}


class FollowModelFactory(private val repository: FollowRepository) : ViewModelFactory() {

    @Suppress("UNCHECKED_CAST")
    override fun <T : ViewModel?> create(modelClass: Class<T>): T = FollowViewModel(repository) as T

}